/*
 * Calculation类，该类为计算工具类，暂时包含DTW算法与时间序列数据平滑算法
 *
 * FIELDS:
 *
 * MEMBER FUNCTIONS:
 *
*/

#ifndef CALCULATION_H
#define CALCULATION_H

#include <QObject>

class Calculation : public QObject
{
    Q_OBJECT
public:
    explicit Calculation(QObject *parent = nullptr);

    /*
     * 这个函数用来将从数据库里获取的初始时间序列曲线进行平稳处理，变为平稳的时间序列曲线
    */
    static QMap<QDateTime, double> temperatureTimeSerisNormalization(QMap<QDateTime, double> rawTimeSeris);

    /*
     * 时间翘曲算法(动态时间规划算法)，但是先做前三个时间序列曲线的平均值，再与第四条曲线(最近的这一轮交换时间)进行
     * 计算，返回的其实是一个距离
    */
    static double temperatureTimeSerisDTW(QList<QMap<QDateTime, double>> rawTimeSerisMatrix);

signals:

};

#endif // CALCULATION_H
